草庐IT

C++ sizeof 包装类

全部标签

c++ - 如何将 BOOST 包装在单独的命名空间中?

我希望同时将两个版本的BOOST编译到一个项目中。理想情况下,它们应该可以按照以下方式使用:boost_1_36_0::boost::shared_ptrsomeClass=newSomeClass();boost_1_35_0::boost::regexexpression("[0-9]",boost_1_35_0::boost::regex_constants::basic); 最佳答案 我阅读(仔细扫描)了developmentlistdiscussion.没有简单的解决办法。总结:在命名空间声明中包装头文件namespace

c++11:如何编写包装函数来生成 `std::function` 对象

我正在尝试编写包装器make_function,就像std::make_pair可以创建一个std::function从合适的可调用对象中提取对象。就像make_pair,对于函数指针foo,autof0=make_function(foo);创建一个std::function函数对象f0正确的类型签名。只是为了澄清,我不介意偶尔给make_function类型参数如果很难(或不可能)完全从参数中推断出类型。到目前为止,我的想法(下面的代码)适用于lambda、一些函数指针和仿函数(我没有考虑volatiles)。但我无法让它为std::bind工作或std::bind结果。在下面的代

以函数作为模板参数的 C++ 函数调用包装器

我正在尝试创建一个通用包装函数,它将一个函数作为模板参数,并将与该函数相同的参数作为其参数。例如:template/*returntypeofF*/wrapper(Ts...Args/*notsurehowtogetTs*/){//dostuffautoret=F(std::forward(args)...);//dosomeotherstuffreturnret;}解决方案需要可转换为与func具有相同类型的函数指针,以便我可以将它传递给Capi。换句话说,解决方案需要是一个函数而不是一个函数对象。最重要的是,我需要能够在包装函数中工作。如果行内注释不清楚,我希望能够执行如下操作:s

c++ - c 和 c++ 中 sizeof 运算符的工作是否不同

这个问题在这里已经有了答案:Sizeofcharacter('a')inC/C++(4个答案)关闭9年前。我写了一个小的printf语句,它在C和C++中的工作方式不同:inti;printf("%d%d%d%d%d\n",sizeof(i),sizeof('A'),sizeof(sizeof('A')),sizeof(float),sizeof(3.14));上述程序使用gcc编译器在c中的输出是44848使用g++编译器在c++中上述程序的输出是41848我预计41448在c中。但结果并非如此。printfsizeof(sizeof('A'))中的第三个参数给出8谁能告诉我这是怎么

c++ - 在编译时打印 sizeof(T)

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:IsitpossibletoprintoutthesizeofaC++classatcompile-time?我可以在编译时输出对象的大小吗?由于编译器在编译源文件时已经有了这些信息,我是否可以看到它(在编译时)而不是经历在某处输出大小的冗长过程在我的应用程序的控制台或调试输出窗口中?这将非常有用,尤其是当我能够编译单个源文件时,这为我在处理大型项目时节省了大量时间。

c++ - 在 typedef 结构体上使用 sizeof 运算符

这可能太明显了。但是,尽管许多stackoverflow线程讨论了这个问题的不同方面,但我找不到具体的答案。typedefstruct_tmp{unsignedinta;unsignedintb;}tmp;intmain(){intc=10;if(c我将这个程序编译为-g++-lstdc++a.cpp我得到一个错误-expectedprimary-expressionbefore‘)’token我想我遗漏了一些非常明显和直接的东西。但似乎无法确定它:-/谢谢! 最佳答案 5.3.3Sizeof[expr.sizeof]1)Thesi

包装任意功能时如何保留类型信息

我正在尝试实施相当于蓝鸟的Promise.method将Typescript与ES6承诺一起使用。所需的用法:conststringify=promiseMethod(JSON.stringify)stringify(/*...*/)//Typecheckingavailablehere,returnsPromise最近的实施:constpromiseMethod=function(fn:(T)=>U){if(typeoffn!=="function"){thrownewTypeError("Parameterisnotafunction:"+fn);}returnPromise>functi

c++ - 如何编写接受回调的 C 函数的 C++ 包装类方法?

给定以下C接口(interface):IoT_Error_taws_iot_mqtt_subscribe(AWS_IoT_Client*pClient,constchar*pTopicName,uint16_ttopicNameLen,QoSqos,pApplicationHandler_tpApplicationHandler,oid*pApplicationHandlerData);“aws_iot_mqtt_subscribe存储其参数供以后引用-调用,以响应稍后某个时间点的某个事件”处理程序:typedefvoid(*pApplicationHandler_t)(AWS_IoT

c++ - 用 Cython 包装枚举类

我正在尝试将枚举类包装在C++头文件中,以便在cython项目中使用。例如,这怎么可能enumclassColor{red,green=20,blue};用Cython包裹。 最佳答案 CPP类enumclassColor{red,green=20,blue};类型定义cdefexternfrom"colors.h":cdefcppclassColor:pass颜色类型的定义cdefexternfrom"colors.h"namespace"Color":cdefColorredcdefColorgreencdefColorblue

c++ - strlen 和 sizeof 对于基于指针和数组的 String 初始化的不同答案

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicates:C:differencesbetweenpointerandarrayDifferentsizeofresults基本上,我是这样做的......char*str1="Sanjeev";charstr2[]="Sanjeev";printf("%d%d\n",strlen(str1),sizeof(str1));printf("%d%d\n",strlen(str2),sizeof(str2));我的输出是7478我无法给出为什么sizeofstr1为4的原因。请解释它们之间的区别。